func loadBuff(name, lv = 0):
	if lv > 0:
		return get(name).new(lv)
	return get(name).new()

var jbs = [
	{
		"name":"驱逐",
		"type":"shipClass",
		"bind":sys.CharaClass.DD,
		"num1":3,
		"text1":"我方驱逐舰娘雷击+50",
		"buff1":"b_jb_dd1",
		"num2":5,
		"text2":"我方全体提高75点雷击",
		"buff2":"b_jb_dd2",
	},
	{
		"name":"轻巡",
		"type":"shipClass",
		"bind":sys.CharaClass.CL,
		"num1":3,
		"text1":"我方轻巡舰娘雷击/炮击+40",
		"buff1":"b_jb_cl1",
		"num2":5,
		"text2":"我方全体提高50点机动",
		"buff2":"b_jb_cl2",
	},
	{
		"name":"重巡",
		"type":"shipClass",
		"bind":sys.CharaClass.CA,
		"num1":3,
		"text1":"我方重巡舰娘射速+30%",
		"buff1":"b_jb_ca1",
		"num2":5,
		"text2":"我方全体提高40%射速",
		"buff2":"b_jb_ca2",
	},
	{
		"name":"战列",
		"type":"shipClass",
		"bind":sys.CharaClass.BB,
		"num1":3,
		"text1":"我方战列舰娘炮击+50",
		"buff1":"b_jb_bb1",
		"num2":5,
		"text2":"我方全体提高75点炮击",
		"buff2":"b_jb_bb2",
	},
	{
		"name":"航母",
		"type":"shipClass",
		"bind":sys.CharaClass.CV,
		"num1":3,
		"text1":"我方航母舰娘航空+50",
		"buff1":"b_jb_cv1",
		"num2":5,
		"text2":"我方全体提高25%冷却速度",
		"buff2":"b_jb_cv2",
	},
	{
		"name":"轻航",
		"type":"shipClass",
		"bind":sys.CharaClass.CVL,
		"num1":3,
		"text1":"我方全体获得15%伤害减免",
		"buff1":"b_jb_cvl1",
		"num2":null,
		"text2":null,
		"buff2":null,
	},
	{
		"name":"辅助",
		"type":"shipClass",
		"bind":sys.CharaClass.SUP,
		"num1":3,
		"text1":"每回合额外获得15金币",
		"buff1":"b_jb_sup1",
		"num2":null,
		"text2":null,
		"buff2":null,
	},
	{
		"name":"重樱",
		"type":"camp",
		"bind":"重樱",
		"num1":4,
		"text1":"我方重樱舰娘每回合提高1点炮击/雷击/航空",
		"buff1":"b_jb_cy1",
		"num2":8,
		"text2":"我方重樱舰娘每回合50%几率提高1%冷却/射速",
		"buff2":"b_jb_cy2",
	},
	{
		"name":"白鹰",
		"type":"camp",
		"bind":"白鹰",
		"num1":4,
		"text1":"我方白鹰舰娘装甲/血量提高20%",
		"buff1":"b_jb_by1",
		"num2":8,
		"text2":"我方全体舰娘免疫负面效果",
		"buff2":"b_jb_by2",
	},
	{
		"name":"皇家",
		"type":"camp",
		"bind":"皇家",
		"num1":4,
		"text1":"我方皇家角色阵亡时赋予目标8层灼烧",
		"buff1":"b_jb_hj1",
		"num2":8,
		"text2":"我方全体舰娘每回合可半血复活一次并立即触发自身亡语",
		"buff2":"b_jb_hj2",
	},
	{
		"name":"碧蓝航线",
		"type":"camp",
		"bind":"碧蓝航线",
		"num1":4,
		"text1":"我方碧蓝航线舰娘获得15%射速冷却吸血",
		"buff1":"b_jb_bl1",
		"num2":8,
		"text2":"我方碧蓝航线舰娘战斗开始后每秒提高2%射速冷却",
		"buff2":"b_jb_bl2",
	},
	{
		"name":"赤色中轴",
		"type":"camp",
		"bind":"赤色中轴",
		"num1":4,
		"text1":"我方赤色中轴舰娘每秒恢复3%血量",
		"buff1":"b_jb_cs1",
		"num2":8,
		"text2":"我方赤色中轴舰娘获得60%反伤",
		"buff2":"b_jb_cs2",
	},
	{
		"name":"赤色中轴",
		"type":"camp",
		"bind":"赤色中轴",
		"num1":4,
		"text1":"我方赤色中轴舰娘每秒恢复4%血量",
		"buff1":"b_jb_cs1",
		"num2":8,
		"text2":"我方赤色中轴舰娘获得60%反伤",
		"buff2":"b_jb_cs2",
	},
	{
		"name":"一航战",
		"type":"chara",
		"bind":["chicheng", "jiahe"],
		"num1":2,
		"text1":"解锁赤城、加贺的特殊羁绊效果",
		"buff1":"b_jb_yihangzhan",
		"num2":null,
		"text2":null,
		"buff2":null,
	},
	{
		"name":"五航战",
		"type":"chara",
		"bind":["xianghe", "ruihe"],
		"num1":2,
		"text1":"解锁翔鹤、瑞鹤的特殊羁绊效果",
		"buff1":"b_jb_wuhangzhan",
		"num2":null,
		"text2":null,
		"buff2":null,
	},
]


class b_jb_dd1:
	extends "../azurlane_ctrl/AzurBuff.gd"
	func _init():
		attInit()
		id = "b_jb_dd1"
		dispel = 2
	func _connect():
		if masCha.type != sys.CharaClass.DD:
			isDel = true
		else:
			att.mgiAtk = 50

class b_jb_dd2:
	extends "../azurlane_ctrl/AzurBuff.gd"
	func _init():
		attInit()
		id = "b_jb_dd2"
		dispel = 2
	func _connect():
		att.mgiAtk = 75

class b_jb_cl1:
	extends "../azurlane_ctrl/AzurBuff.gd"
	func _init():
		attInit()
		id = "b_jb_cl1"
		dispel = 2
	func _connect():
		if masCha.type != sys.CharaClass.CL:
			isDel = true
		else:
			att.mgiAtk = 40
			att.atk = 40

class b_jb_cl2:
	extends "../azurlane_ctrl/AzurBuff.gd"
	func _init():
		attInit()
		id = "b_jb_cl2"
		dispel = 2
	func _connect():
		att.dod = 50

class b_jb_ca1:
	extends "../azurlane_ctrl/AzurBuff.gd"
	func _init():
		attInit()
		id = "b_jb_ca1"
		dispel = 2
	func _connect():
		if masCha.type != sys.CharaClass.CA:
			isDel = true
		else:
			att.spd = 0.3

class b_jb_ca2:
	extends "../azurlane_ctrl/AzurBuff.gd"
	func _init():
		attInit()
		id = "b_jb_ca2"
		dispel = 2
	func _connect():
		att.spd = 0.4

class b_jb_bb1:
	extends "../azurlane_ctrl/AzurBuff.gd"
	func _init():
		attInit()
		id = "b_jb_bb1"
		dispel = 2
	func _connect():
		if masCha.type != sys.CharaClass.BB:
			isDel = true
		else:
			att.atk = 50

class b_jb_bb2:
	extends "../azurlane_ctrl/AzurBuff.gd"
	func _init():
		attInit()
		id = "b_jb_bb2"
		dispel = 2
	func _connect():
		att.atk = 75

class b_jb_cv1:
	extends "../azurlane_ctrl/AzurBuff.gd"
	func _init():
		attInit()
		id = "b_jb_cv1"
		dispel = 2
	func _connect():
		if masCha.type != sys.CharaClass.CV:
			isDel = true
		else:
			att.air = 50

class b_jb_cv2:
	extends "../azurlane_ctrl/AzurBuff.gd"
	func _init():
		attInit()
		id = "b_jb_cv2"
		dispel = 2
	func _connect():
		att.cd = 0.25

class b_jb_cvl1:
	extends "../azurlane_ctrl/AzurBuff.gd"
	func _init():
		attInit()
		id = "b_jb_cvl1"
		dispel = 2
	func _connect():
		masCha.connect("onHurt",self,"_onHurt")
	func _onHurt(atkInfo:AtkInfo):
		atkInfo.hurtVal *= 0.85

class b_jb_sup1:
	extends "../azurlane_ctrl/AzurBuff.gd"
	var jb = globalData.infoDs["g_azurlaneJiban"]
	func _init():
		attInit()
		id = "b_jb_sup1"
		dispel = 2
	func _connect():
		jb.sup1Flag = true

class b_jb_cy1:
	extends "../azurlane_ctrl/AzurBuff.gd"
	func _init():
		attInit()
		id = "b_jb_cy1"
		dispel = 2
	func _connect():
		if masCha.camp != "重樱":
			isDel = true
		else:
			masCha.attEx.atk += 1
			masCha.attEx.mgiAtk += 1
			masCha.attEx.air += 1
			masCha.upAtt()

class b_jb_cy2:
	extends "../azurlane_ctrl/AzurBuff.gd"
	func _init():
		attInit()
		id = "b_jb_cy2"
		dispel = 2
	func _connect():
		if masCha.camp != "重樱":
			isDel = true
		else:
			if sys.rndPer(50):
				masCha.attEx.cd += 0.01
				masCha.attEx.spd += 0.01
				masCha.upAtt()

class b_jb_by1:
	extends "../azurlane_ctrl/AzurBuff.gd"
	func _init():
		attInit()
		id = "b_jb_by1"
		dispel = 2
	func _connect():
		if masCha.camp != "白鹰":
			isDel = true
		else:
			att.defL = 0.2
			att.maxHpL = 0.2

class b_jb_by2:
	extends "../azurlane_ctrl/AzurBuff.gd"
	func _init():
		attInit()
		id = "b_jb_by2"
		dispel = 2
	func _connect():
		masCha.connect("onAddBuff",self,"onAddBuff")
	func onAddBuff(buff):
		if buff.isNegetive and buff.dispel == 1:
			buff.isDel = true

class b_jb_hj1:
	extends "../azurlane_ctrl/AzurBuff.gd"
	func _init():
		attInit()
		id = "b_jb_hj1"
		dispel = 2
	func _connect():
		if masCha.camp != "皇家":
			isDel = true
		else:
			masCha.connect("onDeath",self,"_onDeath")
	func _onDeath(atkInfo):
		masCha.castBuff(masCha.aiCha, buff.b_zhuoShao.new(8))

class b_jb_hj2:
	extends "../azurlane_ctrl/AzurBuff.gd"
	func _init():
		attInit()
		id = "b_jb_hj2"
		dispel = 2
	func _connect():
		masCha.connect("onDeath",self,"_onDeath")
	func _onDeath(atkInfo):
		if masCha.isDeath:
			masCha.isDeath = false
			masCha.healCha(masCha, masCha.att.maxHp*0.5)
			masCha.call("deathWord")
			isDel = true


class b_jb_bl1:
	extends "../azurlane_ctrl/AzurBuff.gd"
	func _init():
		attInit()
		id = "b_jb_bl1"
		dispel = 2
	func _connect():
		if masCha.camp != "碧蓝航线":
			isDel = true
		else:
			att.spd = 0.15
			att.suck = 0.15
			att.cd = 0.15
class b_jb_bl2:
	extends "../azurlane_ctrl/AzurBuff.gd"
	var flag = false
	func _init():
		attInit()
		id = "b_jb_bl2"
		dispel = 2
	func _connect():
		if masCha.camp != "碧蓝航线":
			isDel = true
		else:
			flag = true
	func _upS():
		if flag:
			att.spd += 0.02
			att.cd += 0.02

class b_jb_cs1:
	extends "../azurlane_ctrl/AzurBuff.gd"
	var flag = false
	func _init():
		attInit()
		id = "b_jb_cs1"
		dispel = 2
	func _connect():
		if masCha.camp != "赤色中轴":
			isDel = true
		else:
			flag = true
	func _upS():
		if flag:
			masCha.healCha(masCha, masCha.att.maxHp * 0.04)
class b_jb_cs2:
	extends "../azurlane_ctrl/AzurBuff.gd"
	var flag = false
	func _init():
		attInit()
		id = "b_jb_cs2"
		dispel = 2
	func _connect():
		if masCha.camp != "赤色中轴":
			isDel = true
		else:
			masCha.connect("onHurt", self, "onHurt")
	func onHurt(atkInfo):
		if atkInfo.atkType != sys.AtkType.EFF and atkInfo.hurtVal > 0 and not atkInfo.virtual and atkInfo.atkCha.team != masCha.team:
			atkInfo.fanShang += 0.6

class b_jb_yihangzhan:
	extends "../azurlane_ctrl/AzurBuff.gd"
	var flag = false
	func _init():
		attInit()
		id = "b_jb_yihangzhan"
		dispel = 2
	func _connect():
		if not masCha.ename == "chicheng" and not masCha.ename == "jiahe":
			isDel = true

class b_jb_wuhangzhan:
	extends "../azurlane_ctrl/AzurBuff.gd"
	var flag = false
	func _init():
		attInit()
		buffName = "羁绊·五航战"
		id = "b_jb_wuhangzhan"
		dispel = 2
		att.airL = 1
	func _connect():
		if not masCha.ename == "xianghe" and not masCha.ename == "ruihe":
			isDel = true
			